package com.demo.java.OD1_50.OD32;

import java.util.Scanner;
import java.util.HashMap;
import java.util.Map;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【删除字符串中出现次数最少的字符】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145557273
 */
public class OdMain {

    public static void solveMethod(String value) {
        // 使用 HashMap 来存储字符及其出现的次数
        Map<Character, Integer> myMap = new HashMap<>(value.length());
        int minValue = Integer.MAX_VALUE;  // 最小频率，初始设置为最大值

        // 统计每个字符出现的次数
        for (char c : value.toCharArray()) {
            int m = myMap.getOrDefault(c, 0) + 1;
            myMap.put(c, m);
        }

        // 找到最小的出现次数
        for (char c : value.toCharArray()) {
            int m = myMap.get(c);
            minValue = Math.min(minValue, m);
        }

        // 构建结果字符串，去掉出现次数最少的字符
        StringBuilder tringBuilder = new StringBuilder();
        for (char c : value.toCharArray()) {
            int m = myMap.get(c);
            if (m != minValue) {
                tringBuilder.append(c);
            }
        }

        // 输出结果
        System.out.println(tringBuilder.toString());
    }

    public static void main(String[] args) {
        try {
            Scanner s = new Scanner(System.in);
            String input = s.nextLine();  // 读取输入字符串
            solveMethod(input);  // 调用方法处理输入
        } catch (Exception e) {
            e.printStackTrace();  // 异常处理
        }
    }
}